package Multithreading.Thread.test;

/**
 * todo 线程隔离：
 * 在多线程并发的场景下，每个线程下的变量都是  “ 相互独立的   ”
 */
public class ThreadDemo1 {

    private String content;

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    /**
     *
     * ---------------
     * ---------------
     * 线程1-----线程1的数据
     * 线程0-----线程1的数据   todo 线程不隔离，出现了线程0 取出了线程1的变量
     * ---------------
     * 线程2-----线程2的数据
     * ---------------
     * 线程3-----线程3的数据
     * ---------------
     * 线程4-----线程4的数据
     *
     * @param args
     */
    public static void main(String[] args){
        ThreadDemo1 demo = new ThreadDemo1();
        for(int i = 0; i < 5; i++){
            Thread thread = new Thread(new Runnable() {
                @Override
                public void run() {
                    demo.setContent(Thread.currentThread().getName() + "的数据");
                    System.out.println("---------------");
                    System.out.println(Thread.currentThread().getName() + "-----" + demo.getContent());
                }
            });
            thread.setName("线程"+ i);
            thread.start();
        }
    }


}
